#ifndef LOGIC_UNDO_H
#define LOGIC_UNDO_H

#include <iostream>
#include <string>
#include <vector>
#include <stack>

#include "Data.h"
#include "Task.h"
#include "Writer.h"
#include "LogicBase.h"
#include "CustomException.h"
#include "FileNotFoundException.h"

#include <boost\date_time.hpp>

using namespace std;
using namespace boost::posix_time;
using namespace boost::gregorian;

class LogicUndo : public LogicBase {
public:

        string undo();
		static LogicUndo& getInstance();
        
private:
		stack<Data> undoStackData;

		static LogicUndo* _logicUndo;

        static const string UNDO_SUCCESS_MESSAGE ;

        static const string UNDO_ERROR_MESSAGE ;

};
#endif